欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

MySQL日志管理

1 MySQL日志

1.1 錯誤日志

文件名:可用–log-error[=file_name]指定,否則默認使用hostname.err

內容:記錄mysqld啟動和停止時,以及服務器發生任何嚴重錯誤時記錄相關信息

1.2 二進制日志

文件名:也是binlog(邏輯日志),可用–log-bin[=file_name] 指定,默認為主機名

內容:包含了所有更新了或者潛在更新了數據的所有語句,語句以“事件”的形式保存,描述數據更改文件位置和格式

查看日志:

mysqlbinlog log-file

刪除日志:

#刪除所有的binlog日志,新日志從頭開始編號
RESET MASTER
#刪除mysql-bin.010之前的所有日志
PURGE MASTER LOGS TO 'mysql-bin.010'
#刪除2022.5.1之前的binlog日志
purge master logs before '2022-05-01 08:00:00';

1.3 查詢日志

文件名:使用–log指定,默認hostname.log

內容:記錄客戶端所有查詢語句記錄,在二進制日志不存在查詢語句記錄

1.4 慢查詢日志

文件名:使用–log-slow-querie指定,默認*-slow.log,寫入data目錄

內容:記錄執行時間超過long_query_time秒的SQL查詢日志文件

其它選項:–log_slow_admin_statements:表示將慢管理語句,如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE寫入慢查詢語句

1.5 通用查詢日志

查看:show variables like '%general_log%';

執行SQL命令 set global general_log=on; 開啟

文件:默認存放在data目錄下hostname.log文件

內容:記錄客戶端的所有查詢行為

1.6 中繼日志

文件:默認文件名hostnamet-relay-bin,存放在data目錄下

功能:從服務器I/O線程將主服務器的二進制日志讀取過來記錄到從服務器本地文件,然后從服務器SQL線程會讀取relay-log日志的內容并應用到從服務器,從而使從服務器和主服務器的數據保持一致

參數:show variables like '%relay%';

  • max_relay_log_size
    • relay log 允許的最大值,如果該值為0,則默認值為 max_binlog_size (1G)
    • 如果不為0,則 max_relay_log_size 則為最大的relay_log文件大小
  • relay_log
    • 定義 relay_log 的位置和名稱,如果值為空,則默認位置在數據文件的目錄
  • relay_log_index
    • 定義 relay_log 索引的位置和名稱,記錄有幾個 relay_log 文件,默認為2個
  • relay_log_info_file
    • 定義 relay-log.info 的位置和名稱,relay-log.info 記錄 master 主庫的 binary_log 的恢復位置和 從庫 relay_log 的位置
  • relay_log_purge
    • 是否自動清空中繼日志,默認值為1(啟用)
  • relay_log_recovery
    • 當slave從庫宕機后,假如relay-log損壞了,導致一部分中繼日志沒有處理,則自動放棄所有未執行的relay-log,并且重新從master上獲取日志,這樣就保證了relay-log的完整性。默認情況下該功能是關閉的,將relay_log_recovery的值設置為 1時,可在slave從庫上開啟該功能,建議開啟
  • sync_relay_log
    • 當設置為1時,slave的I/O線程每次接收到master發送過來的binlog日志都要寫入系統緩沖區,然后刷入relay log中繼日志里,這樣是最安全的,因為在崩潰的時候,你最多會丟失一個事務,但會造成磁盤的大量I/O
    • 當設置為0時,并不是馬上就刷入中繼日志里,而是由操作系統決定何時來寫入,雖然安全性降低了,但減少了大量的磁盤I/O操作。這個值默認是0,可動態修改
  • sync_relay_log_info
    • 這個參數和 sync_relay_log 參數一樣

1.7 審計日志

內容:企業版自帶功能,社區版需使用audit審計插件完成數據庫審計工作

開啟步驟:

  • 下載插件:https://github.com/mcafee/mysql-audit

  • 查看插件功能是否開啟: show variables like "%audit%";

  • 開啟插件功能:set global audit_json_file=1;

    注意,使用此方法開啟對global全局變量的設置僅對于新開啟的會話才是有效的,對已經開啟的會話不生效,參數最終需持久化到my.cnf配置文件中

  • 開啟后,在MySQL數據目錄下會多出一個mysql-audit.json審計日志

2 InnoDB日志

2.1 重做日志 (Redo Log)

文件:默認情況下,對應的物理文件位于數據庫的data目錄下的ib_logfile1&ib_logfile2

內容:物理日志,記錄物理數據頁面的修改信息,redo log順序寫入redo log file物理文件中

重做日志有一個緩沖區Innodb_log_buffer,InnoDB優先將重做日志寫入緩沖區,日志寫盤通常有三種方式:

  • Master Thread 每秒一次執行刷新Innodb_log_buffer到重做日志文件

  • 每個事務提交時會將重做日志刷新到重做日志文件。

  • 當重做日志緩存可用空間 少于一半時,重做日志緩存被刷新到重做日志文件

因此,重做日志的寫盤,并不一定是隨著事務的提交才寫入重做日志文件的,而是隨著事務的開始逐步開始的,這可以很好地解釋再大的事務的提交(commit)的時間也是很短暫的

事務產生的重做日志,通過innodb_flush_log_at_trx_commit參數控制:

  • 設置為 0 的時候,表示不寫入buffer,直接每秒寫入到redo file中,但mysql 崩潰會丟失1s數據
  • 設置為 1 的時候,表示每次事務提交時都將 redo log 直接持久化到磁盤
  • 設置為 2 的時候,表示每次事務提交時都只是把 redo log 寫到 page cache,由OS處理回寫磁盤操作,OS宕機會丟失數據

2.2 回滾日志(Undo Log)

文件:邏輯日志,記錄在表空間中

  • MySQL5.6之前,undo表空間位于共享表空間的回滾段中,共享表空間的默認的名稱是ibdata,位于數據文件目錄中

  • MySQL5.6之后,undo表空間可以配置成獨立的文件,但是提前需要在配置文件中配置,完成數據庫初始化后生效且不可改變undo log文件的個數

內容:記錄數據的邏輯變化,一條INSERT會對應一條DELETE的undo log,發生錯誤時能夠恢復到事務之前的數據狀態

undo log是MVCC(多版本并發控制)實現的關鍵

MySQL日志管理

文章鏈接: http://www.qzkangyuan.com/9692.html

文章標題:MySQL日志管理

文章版權:夢飛科技所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創發布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程投稿分享

MySQL索引創建與維護

2022-9-5 15:20:28

建站教程投稿分享

MySQL事務

2022-9-6 12:46:39

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 四会市| 芮城县| 张掖市| 璧山县| 福州市| 聊城市| 武汉市| 尉氏县| 大渡口区| 郓城县| 湖南省| 都昌县| 肇源县| 邻水| 固始县| 麦盖提县| 鄂托克前旗| 伊金霍洛旗| 祁阳县| 波密县| 东光县| 龙泉市| 金阳县| 长海县| 金门县| 措美县| 西青区| 九江县| 湖南省| 肃南| 额敏县| 巴彦淖尔市| 巴彦县| 上犹县| 汤原县| 乌什县| 五指山市| 繁昌县| 油尖旺区| 郧西县| 收藏|